From 7377b7e5c2e2f1ffbb3d4f98990878fe4d3d7a58 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Wed, 5 Oct 2016 14:26:30 +0200 Subject: [PATCH] plugman: Stop using gtk_override_color --- examples/plugman.c | 50 +++++++++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/examples/plugman.c b/examples/plugman.c index 03c633d445..04f0029367 100644 --- a/examples/plugman.c +++ b/examples/plugman.c @@ -1,5 +1,17 @@ #include #include +#include + + +static const char *red_css = +"textview>text {" +" color: red;" +"}"; + +static const char *black_css = +"textview>text {" +" color: black;" +"}"; static void activate_toggle (GSimpleAction *action, @@ -195,22 +207,28 @@ plugin_action (GAction *action, GVariant *parameter, gpointer data) { - GApplication *app; - GList *list; - GtkWindow *window; - GtkWidget *text; - GdkRGBA color; - - app = g_application_get_default (); - list = gtk_application_get_windows (GTK_APPLICATION (app)); - window = GTK_WINDOW (list->data); - text = g_object_get_data ((GObject*)window, "plugman-text"); - - gdk_rgba_parse (&color, g_action_get_name (action)); - -G_GNUC_BEGIN_IGNORE_DEPRECATIONS - gtk_widget_override_color (text, 0, &color); -G_GNUC_END_IGNORE_DEPRECATIONS + const char *action_name; + const char *css_to_load; + GtkCssProvider *css_provider; + + action_name = g_action_get_name (action); + if (strcmp (action_name, "red") == 0) + css_to_load = red_css; + else if (strcmp (action_name, "black") == 0) + css_to_load = black_css; + else + { + g_critical ("Unknown action name: %s", action_name); + return; + } + + g_message ("Color: %s", g_action_get_name (action)); + + css_provider = gtk_css_provider_new (); + gtk_css_provider_load_from_data (css_provider, css_to_load, -1, NULL); + gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), + GTK_STYLE_PROVIDER (css_provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); } static void -- 2.30.2